import unittest
import requests
from api.api_dlce import RegLoginApi
from api.api_kh import OpenAccountApi
from common.html解析 import html_util
from common.封装数据库操作方法 import clear_user_info
from common.断言参数化 import common_assert, com_assert



class TestOpenAccount(unittest.TestCase):
    def setUp(self) -> None:
        # 创建session对象
        self.session = requests.session()
        # 实例化封装接口请求的类
        self.login = RegLoginApi(self.session)
        self.kf = OpenAccountApi(self.session)


    def tearDown(self) -> None:
        # 关闭session对象
        self.session.close()


    # 实名认证测试用例
    def test01_realname(self):
        # 实现登录接口
        self.login.user_login('15611111711', '123456')
        # 实现实名认证接口
        resp=self.kf.realname('萧炎', '450102199003078798')
        data=resp.json()
        # 断言
        common_assert(self, resp, 200, 200, '成功')

        self.assertEqual('萧**', data['data']['realname'])

    # 开户测试用例
    def test02_open_account(self):
        # 实现登录接口
        self.login.user_login('15611111711', '123456')
        # 实现开户接口
        resp = self.kf.open_account()
        # 断言
        common_assert(self, resp, 200, 200, 'form')

    # 第三方开户测试用例
    def test03_third_open_account(self):
        # 实现登录接口
        self.login.user_login('17111111111', '123456')
        # 实现开户接口
        resp_kf=self.kf.open_account()

        # 实现第三方开户接口
        url=html_util(resp_kf)[0]
        form=html_util(resp_kf)[1]

        resp=self.kf.third_open_account(url,form)
        # 断言

